____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
ÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻ
Data Encryption Standard
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
top
Der Data Encryption Standard (DES; deutsch âDatenverschlĂŒsselungsstandardâ) ist ein weit verbreiteter symmetrischer VerschlĂŒsselungsalgorithmus, eine sogenannte Blockchiffre.
Der DES-Algorithmus wurde als offizieller Standard fĂŒr die US-Regierung (siehe FIPS 46) im Jahr 1977 bestĂ€tigt und wird seither international vielfach eingesetzt. Seine Entstehungsgeschichte hat wegen der Beteiligung der NSA am Design des Algorithmus immer wieder Anlass zu Spekulationen ĂŒber seine Sicherheit gegeben. DES wurde schon kurz nach seiner Veröffentlichung aufgrund der verwendeten SchlĂŒssellĂ€nge von nur 56 Bits als nicht ausreichend sicher erachtet.
Die SchlĂŒssellĂ€nge kann durch Mehrfachanwendung des DES jedoch auf einfache Weise vergröĂert werden. Als Triple-DES, auch als TDES, 3DES oder DESede bezeichnet, wird der DES weiterhin am hĂ€ufigsten, zum Beispiel von Banken in Chipkartenanwendungen, eingesetzt, obwohl der TDES als offizieller Standard fĂŒr die USA durch den Advanced Encryption Standard (AES) abgelöst wurde.
Contents
âą Geschichte
âą Standardisierung
âą Chronologie
âą Funktionsweise
âą Betriebsmodi
âą Die Expansion
âą Die Substitution
⹠SchwÀchen
âą Deep Crack
âą COPACOBANA
âą Anwendungen
âą Triple-DES
âą AES
âą Literatur
âą Weblinks
âą Einzelnachweise
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Geschichte
Zu Beginn der 1970er Jahre war zwar die militĂ€rische Kryptologie auf einem hohen Niveau, fĂŒr nichtmilitĂ€rische Anwendungen waren jedoch kaum brauchbare Produkte verfĂŒgbar. Das National Bureau of Standards (NBS) der USA â heute National Institute of Standards and Technology (NIST) â sah Bedarf fĂŒr einen einheitlichen Standard fĂŒr die behördenĂŒbergreifende VerschlĂŒsselung vertraulicher Daten. Nach Beratungen mit der NSA veröffentlichte es am 15. Mai 1973 im Federal Register eine Ausschreibung. Insbesondere sollte die Sicherheit des Algorithmus nach Kerckhoffsâ Prinzip nur von der Geheimhaltung des SchlĂŒssels, nicht aber von der Geheimhaltung des Algorithmus abhĂ€ngen. Keiner der eingereichten Kandidaten erfĂŒllte jedoch die gestellten Bedingungen, was zu einer neuerlichen Ausschreibung am 27. August 1974 fĂŒhrte.
IBM lieferte einen vielversprechenden Vorschlag, der auf einer Weiterentwicklung des wenige Jahre zuvor unter der Mitarbeit von Horst Feistel entwickelten Algorithmus âLuciferâ beruhte. Dieser Algorithmus zeichnete sich dadurch aus, dass er einfache logische Operationen auf kleinen Bitgruppen nutzte und dadurch leicht in Hardware implementierbar war. Neben Feistel selbst waren auch Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith und Bryant Tuckerman Mitglieder des IBM-Entwicklungsteams.
Die Rolle der NSA
NBS und IBM beschlossen eine Kooperation mit UnterstĂŒtzung der National Security Agency (NSA). Welchen Einfluss die NSA auf die Entwicklung des Algorithmus hatte, ist umstritten. Vor allem die SchlĂŒssellĂ€nge von 56 Bits und das Design der fĂŒr Substitution zustĂ€ndigen âS-Boxenâ gab Anlass zu Spekulation ĂŒber mögliche HintertĂŒren, die eventuell durch die NSA eingefĂŒhrt wurden. Nach eigenen Angaben stĂ€rkte die NSA die S-Boxen gegen differentielle Kryptoanalyse, wollte aber gleichzeitig die SchlĂŒssellĂ€nge auf 48 Bits beschrĂ€nken, wĂ€hrend IBM 64 Bits wollte. Als Kompromiss einigten sich NSA und IBM auf eine SchlĂŒssellĂ€nge von 56 Bits.cite-ref-1[1]
Am 17. MĂ€rz 1975 wurde der Algorithmus im âFederal Registerâ veröffentlicht. Die NBS bat zudem um öffentliche Stellungnahme. Im folgenden Jahr wurden zwei Workshops zum vorgeschlagenen Standard abgehalten. Durch die unklare Rolle der NSA zogen die VerĂ€nderungen des Algorithmus von verschiedenen Seiten Kritik auf sich, unter anderem von den Pionieren asymmetrischer Kryptosysteme Martin Hellman und Whitfield Diffie. Es wurde gemutmaĂt, die NSA habe eine HintertĂŒr eingebaut, welche das Verfahren dergestalt schwĂ€cht, dass sie damit verschlĂŒsselte Nachrichten lesen konnte. Alan Konheim, einer der DES-Entwickler, gab an, die S-Boxen nach Washington gesendet und stark verĂ€ndert wiedererhalten zu haben.cite-ref-schneier-2-0[2]
Ein nachrichtendienstliches Komitee des US-Senats untersuchte die Einflussnahme des NSA. In der nicht als Verschlusssache gehandhabten Zusammenfassung des Berichts gaben sie 1978 an:cite-ref-ussenat-3-0[3]
âIn the development of DES, NSA convinced IBM that a reduced key size was sufficient; indirectly assisted in the development of the S-box structures; and certified that the final DES algorithm was, to the best of their knowledge, free from any statistical or mathematical weakness. [âŠ] NSA did not tamper with the design of the algorithm in any way. IBM invented and designed the algorithm, made all pertinent decisions regarding it, and concurred that the agreed upon key size was more than adequate for all commercial applications for which the DES was intended.â
âWĂ€hrend der Entwicklung von DES ĂŒberzeugte die NSA IBM davon, dass eine reduzierte SchlĂŒssellĂ€nge ausreichend sei; half indirekt bei der Konstruktion der S-Boxen; und zertifizierte den entstehenden DES-Algorithmus als nach bestem Gewissen frei von statistischen und mathematischen SchwĂ€chen. [âŠ] Die NSA verĂ€nderte das Design des Algorithmus in keiner Weise. IBM entwarf und entwickelte diesen, traf alle sachdienlichen Entscheidungen und stimmte darin ĂŒberein, dass die verkĂŒrzte SchlĂŒssellĂ€nge mehr als adĂ€quat fĂŒr die vorgesehenen kommerziellen Verwendungen sei.â
Walter Tuchman, ein weiterer DES-Entwickler, wird mit den Worten zitiert âWe developed the DES algorithm entirely within IBM using IBMers. The NSA did not dictate a single wire!â (deutsch: âWir haben den DES-Algorithmus vollstĂ€ndig innerhalb von IBM unter Nutzung von IBMern entwickelt. Die NSA hat nicht ein einziges Memo diktiert!â).cite-ref-kinnucan-4-0[4]
Durch die Veröffentlichung der differentiellen Kryptoanalyse durch Adi Shamir und Eli Biham im Jahr 1990 wurden einige der BefĂŒrchtungen einer HintertĂŒr aus dem Wege gerĂ€umt. DES zeigte sich durch die Gestaltung der S-Boxen deutlich widerstandsfĂ€higer gegen diese generische Angriffsmethode, als dies bei einer zufĂ€lligen Anordnung der Fall gewesen wĂ€re.cite-ref-biham-5-0[5] 1994 veröffentlichte Don Coppersmith die ursprĂŒnglichen Designkriterien fĂŒr die S-Boxen.cite-ref-coppersmith-6-0[6] Es zeigte sich, dass IBM die differentielle Kryptoanalyse bereits in den 1970er Jahren entdeckt hatte und nach Umgestaltung der S-Boxen von der NSA zur Geheimhaltung instruiert worden war.
Coppersmith erklĂ€rte âthat was because [differential cryptanalysis] can be a very powerful tool, used against many schemes, and there was concern that such information in the public domain could adversely affect national security.â (deutsch: âdies geschah, da die [differentielle Kryptoanalyse] ein mĂ€chtiges Werkzeug gegen viele Verfahren sein kann und es Bedenken gab, die nationale Sicherheit könne durch eine Veröffentlichung gefĂ€hrdet werden.â).cite-ref-coppersmith2-7-0[7]
Shamir selbst kommentierte âI would say that, contrary to what some people believe, there is no evidence of tampering with the DES so that the basic design was weakened.â (deutsch: âAnders als manche glauben, sehe ich selbst keine Hinweise auf Manipulation von DES, welche das grundlegende Design geschwĂ€cht hat.â)
Die Kritik an der LĂ€nge des SchlĂŒssels blieb jedoch bestehen und wurde durch die BegrĂŒndung der NSA, 8 der 64 SchlĂŒsselbits könnten als ParitĂ€tsbits verwendet werden, noch weiter gestĂŒtzt. Es wird weithin vermutet, dass die Reduzierung der NSA die Möglichkeit eines Angriffs mit der Brute-Force-Methode schaffen sollte.
Heute gilt der DES aufgrund seiner geringen SchlĂŒssellĂ€nge als nicht mehr sicher genug. Durch die Mehrfachanwendung des DES mit unterschiedlichen SchlĂŒsseln wie zum Beispiel beim TDES kann die effektive SchlĂŒssellĂ€nge erhöht werden.
Wissenschaftliche Untersuchungen haben mittlerweile erwiesen, dass DES trotz seiner SchlĂŒssellĂ€nge von nur 56 Bits sicherer ist als der Lucifer-Algorithmus mit seinen 128 Bits.cite-ref-benaroya-8-0[8]
Standardisierung
DES wurde als Standard fĂŒr alle amerikanischen Bundesbehörden zugelassen und am 15. Januar 1977 als FIPS PUB 46 publiziert; verpflichtend fĂŒr sie wurde er sechs Monate spĂ€ter. Der Standard enthielt die Auflage, alle fĂŒnf Jahre neu bestĂ€tigt werden zu mĂŒssen. Weiterhin befasste sich die Internationale Organisation fĂŒr Normung (ISO) mit dem Algorithmus unter der Bezeichnung Data Encipherment No. 1 (DEA1).
1981 wurde der DES-Algorithmus vom American National Standards Institute (ANSI) als Standard fĂŒr den privaten Sektor anerkannt.
Bereits Anfang der 1990er Jahre Ă€uĂerten Kryptographen erste Zweifel, ob der DES-Algorithmus noch als sicher anzusehen sei. Zum einen hatte sich die Hardware im Vergleich zu 1970 stark weiter entwickelt, zum anderen glaubte man auch SchwĂ€chen im Algorithmus zu erkennen. 1994 wurde ein theoretischer Angriff mittels linearer Kryptoanalyse publiziert. Mitte 1998 fĂŒhrte die Electronic Frontier Foundation (EFF) einen erfolgreichen Angriff ĂŒber die Brute-Force-Methode durch. Die Gesellschaft baute hierzu eine spezielle Hardware mit insgesamt ĂŒber 1800 Mikroprozessorencite-ref-9[9] und konnte mit dieser einen SchlĂŒssel in weniger als drei Tagen brechen. Die Arbeiten am Nachfolgestandard AES hatten zu diesem Zeitpunkt schon begonnen. Am 26. Mai 2002 wurde DES schlieĂlich durch AES ersetzt.
Die EinfĂŒhrung von DES gilt als Auslöser einer Vielzahl kryptographischer Studien, besonders solcher, die sich mit dem Angriff auf Blockchiffrierungen befassen. Bruce Schneier schreibt in seinem Buch Angewandte Kryptographie:
âInoffiziell bezeichnete die NSA den DES als einen ihrer gröĂten Fehler. HĂ€tte die Behörde gewuĂt, daĂ die Einzelheiten herausgegeben und Softwareimplementierungen möglich wurden, hĂ€tte sie niemals zugestimmt. Mehr als alles andere revolutionierte DES die gesamte Kryptoanalyse. Jetzt gab es einen Algorithmus, den man untersuchen konnte â sogar einen, den die NSA als sicher bezeichnete.âcite-ref-10[10]
Chronologie
| Datum | Datum | Ereignis |
|---|---|---|
| 15. Mai | 1973 | Das NBS veröffentlicht eine erste Ausschreibung fĂŒr ein standardisiertes VerschlĂŒsselungsverfahren |
| 27. August | 1974 | Das NBS veröffentlicht eine zweite Ausschreibung fĂŒr ein standardisiertes VerschlĂŒsselungsverfahren |
| 17. MĂ€rz | 1975 | DES wird im âFederal Registerâ veröffentlicht |
| August | 1976 | Erster Workshop zu DES |
| September | 1976 | Zweiter Workshop, welcher die mathematischen Grundlagen von DES behandelt |
| November | 1976 | DES wird als Standard zugelassen |
| 15. Januar | 1977 | DES wird als FIPS-Standard âFIPS PUB 46â veröffentlicht |
| Juni | 1977 | Diffie und Hellman argumentieren, dass DES per brute force geknackt werden kann [ 11 ] |
| | 1983 | DES wird das erste Mal neu bestÀtigt |
| | 1986 | Videocipher II, ein auf DES basierendes VerschlĂŒsselungssystem fĂŒr Fernsehsatelliten wird von der HBO verwendet |
| 22. Januar | 1988 | DES wird als âFIPS 46-1â revalidiert, welches FIPS PUB 46 ersetzt |
| | 1992 | Biham und Shamir publizieren den ersten theoretischen Angriff mit gegenĂŒber der Brute-Force-Methode verminderter KomplexitĂ€t : die differentielle Kryptanalyse. Dieser Angriff erfordert jedoch unrealistische 2 47 frei gewĂ€hlte Klartexte. |
| 30. Dezember | 1993 | DES wird ein drittes Mal bestĂ€tigt, diesmal als âFIPS 46-2â |
| | 1994 | Die erste experimentelle Kryptoanalyse von DES wird mittels linearer Kryptoanalyse durchgefĂŒhrt (Matsui, 1994) |
| Juni | 1997 | Das DESCHALL-Projekt bricht erstmals öffentlich eine mit DES verschlĂŒsselte Nachricht |
| Juli | 1998 | Der DES-Knacker â Deep Crack â der Electronic Frontier Foundation bricht einen DES-SchlĂŒssel binnen 56 Stunden |
| Januar | 1999 | Deep Crack und distributed.net brechen in einer Kooperation einen DES-SchlĂŒssel in 22 Stunden und 15 Minuten |
| 25. Oktober | 1999 | DES wird ein viertes Mal in Gestalt des âFIPS 46-3â bestĂ€tigt. Dieser gibt als bevorzugte Anwendung 3DES an und erlaubt DES selbst nur fĂŒr den Einsatz in veralteten Systemen |
| 26. November | 2001 | Der Advanced Encryption Standard (AES) wird als âFIPS 197â publiziert |
| 26. Mai | 2002 | Der AES tritt in Kraft |
| 26. Juli | 2004 | Im âFederal Registerâ wird die Absetzung des FIPS 46-3 und verwandter Standards empfohlen |
| 19. Mai | 2005 | NIST setzt den FIPS 46-3 auĂer Kraft |
| MĂ€rz | 2006 | Der FPGA-basierte Parallelrechner COPACOBANA kostet weniger als 10.000 Dollar (Materialkosten) und bricht DES in weniger als 9 Tagen |
| November | 2008 | Die Weiterentwicklung des FPGA-basierten Parallelrechners COPACOBANA, die RIVYERA, bricht DES erstmals in weniger als einem Tag |
Funktionsweise
Bei DES handelt es sich um einen symmetrischen Algorithmus, das heiĂt zur Ver- und EntschlĂŒsselung wird derselbe SchlĂŒssel verwendet. DES funktioniert als Blockchiffre, jeder Block wird also unter Verwendung des SchlĂŒssels einzeln chiffriert, wobei die Daten in 16 Iterationen beziehungsweise Runden von Substitutionen und Transpositionen (Permutation) nach dem Schema von Feistel âverwĂŒrfeltâ werden. Die BlockgröĂe betrĂ€gt 64 Bits, das heiĂt ein 64-Bit-Block Klartext wird in einen 64-Bit-Block Chiffretext transformiert. Auch der SchlĂŒssel, der diese Transformation kontrolliert, besitzt 64 Bits. Jedoch stehen dem Benutzer von diesen 64 Bits nur 56 Bits zur VerfĂŒgung; die ĂŒbrigen 8 Bits (jeweils ein Bit aus jedem Byte) werden zum ParitĂ€ts-Check benötigt. Die effektive SchlĂŒssellĂ€nge betrĂ€gt daher nur 56 Bits. Die EntschlĂŒsselung wird mit dem gleichen Algorithmus durchgefĂŒhrt, wobei die einzelnen RundenschlĂŒssel in umgekehrter Reihenfolge verwendet werden.
Auf den 64-Bit-Block wird eine initiale Permutation angewandt. Danach wird der Block in zwei Teile aufgeteilt und jeder Teil in ein 32-Bit-Register gespeichert. Die beiden BlockhĂ€lften werden in Folge als linke und rechte HĂ€lfte (siehe Skizze) bezeichnet. Auf die rechte BlockhĂ€lfte wird die Feistel-Funktion angewandt. Danach wird die rechte HĂ€lfte mit der linken HĂ€lfte XOR verknĂŒpft und das Ergebnis im Register der nĂ€chsten Runde fĂŒr die rechte HĂ€lfte gespeichert. In das linke Register der nĂ€chsten Runde wird die ursprĂŒngliche rechte BlockhĂ€lfte kopiert. Nach Ende der letzten Runde werden die beiden HĂ€lften vertauscht zusammengefĂŒhrt und eine finale Permutation durchgefĂŒhrt. Dabei handelt es sich um die inverse Permutation zur initialen Permutation.
Betriebsmodi
Der DES-Algorithmus beschreibt zunĂ€chst nur, wie ein Datenblock mit 64 Bits verarbeitet wird. Zur Verarbeitung einer Nachricht beliebiger LĂ€nge lĂ€sst sich der DES wie auch jede andere Blockchiffre in verschiedenen Betriebsmodi verwenden. FĂŒr bestimmte Betriebsmodi, wie zum Beispiel ECB oder CBC, ist ein AuffĂŒllen des Klartextes auf ein Vielfaches der vollen BlocklĂ€nge notwendig (Padding). Dies geschieht, indem die Bitfolge 1000⊠angehĂ€ngt wird.
Die Feistel-Funktion
Die F-Funktion von DES arbeitet auf Halbblöcken zu je 32 Bits und besteht aus vier Phasen:cite-ref-hoac-12-0[12]
1. Die R-Blöcke werden mittels einer geeigneten Permutation E (Expansion) auf 48 Bits LÀnge expandiert, indem einzelne Bits mehrfach verwendet werden.
2. Das Ergebnis wird mit einem TeilschlĂŒssel XOR-verknĂŒpft. FĂŒr jede Runde wird hierzu nach einer festen Vorschrift ein anderer 48-Bit-TeilschlĂŒssel aus dem HauptschlĂŒssel generiert.
3. Die resultierenden Blöcke werden in acht 6-Bit-StĂŒcke zerteilt und diese mittels Substitution durch S-Boxen auf eine LĂ€nge von 4 Bits komprimiert. Diese nicht-lineare Transformierung in den S-Boxen stellt das HerzstĂŒck der Sicherheit von DES dar, ohne sie wĂ€re DES linear und trivial zu brechen.
4. Die 32 Bits Ausgabe der S-Boxen werden mittels einer festen Permutation P rearrangiert.
Diese Kombination aus Permutationen und Substitutionen entspricht dem von Claude Shannon aufgestellten Prinzip der Diffusion und Konfusion.
Die Expansion
Um den Halbblock in der Feistel-Funktion von 32 Bits auf 48 Bits zu erweitern, wird der Halbblock in 4-Bit-Gruppen aufgeteilt. Die Bits am Rand jeder 4-Bit-Gruppe werden vorn, beziehungsweise hinten an die benachbarte 4-Bit-Gruppe angehÀngt.cite-ref-schneier2-13-0[13]
Die Substitution
Die Substitutionsboxen (S-Boxen) beim DES sind standardisiert. Um aus den folgenden Tabellen den Ausgabewert zu erhalten, wird der Eingabewert gesplittet. So bildet das erste und letzte Bit zusammen die Zeile, und die Spalte ergibt sich aus den ĂŒbrigen Bits (siehe Beispiel).cite-ref-14[14] Eine Ănderung dieser Boxen reduziert die Sicherheit drastisch! Daher sollten die folgenden Tabellen fĂŒr die Substitutionsboxen verwendet werden:
| S 1 | S 1 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 1 | S 1 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 1110 | 0100 | 1101 | 0001 | 0010 | 1111 | 1011 | 1000 | 0011 | 1010 | 0110 | 1100 | 0101 | 1001 | 0000 | 0111 |
| ĂuĂere Bits | 01 | 0000 | 1111 | 0111 | 0100 | 1110 | 0010 | 1101 | 0001 | 1010 | 0110 | 1100 | 1011 | 1001 | 0101 | 0011 | 1000 |
| ĂuĂere Bits | 10 | 0100 | 0001 | 1110 | 1000 | 1101 | 0110 | 0010 | 1011 | 1111 | 1100 | 1001 | 0111 | 0011 | 1010 | 0101 | 0000 |
| ĂuĂere Bits | 11 | 1111 | 1100 | 1000 | 0010 | 0100 | 1001 | 0001 | 0111 | 0101 | 1011 | 0011 | 1110 | 1010 | 0000 | 0110 | 1101 |
| S 2 | S 2 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 2 | S 2 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 1111 | 0001 | 1000 | 1110 | 0110 | 1011 | 0011 | 0100 | 1001 | 0111 | 0010 | 1101 | 1100 | 0000 | 0101 | 1010 |
| ĂuĂere Bits | 01 | 0011 | 1101 | 0100 | 0111 | 1111 | 0010 | 1000 | 1110 | 1100 | 0000 | 0001 | 1010 | 0110 | 1001 | 1011 | 0101 |
| ĂuĂere Bits | 10 | 0000 | 1110 | 0111 | 1011 | 1010 | 0100 | 1101 | 0001 | 0101 | 1000 | 1100 | 0110 | 1001 | 0011 | 0010 | 1111 |
| ĂuĂere Bits | 11 | 1101 | 1000 | 1010 | 0001 | 0011 | 1111 | 0100 | 0010 | 1011 | 0110 | 0111 | 1100 | 0000 | 0101 | 1110 | 1001 |
| S 3 | S 3 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 3 | S 3 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 1010 | 0000 | 1001 | 1110 | 0110 | 0011 | 1111 | 0101 | 0001 | 1101 | 1100 | 0111 | 1011 | 0100 | 0010 | 1000 |
| ĂuĂere Bits | 01 | 1101 | 0111 | 0000 | 1001 | 0011 | 0100 | 0110 | 1010 | 0010 | 1000 | 0101 | 1110 | 1100 | 1011 | 1111 | 0001 |
| ĂuĂere Bits | 10 | 1101 | 0110 | 0100 | 1001 | 1000 | 1111 | 0011 | 0000 | 1011 | 0001 | 0010 | 1100 | 0101 | 1010 | 1110 | 0111 |
| ĂuĂere Bits | 11 | 0001 | 1010 | 1101 | 0000 | 0110 | 1001 | 1000 | 0111 | 0100 | 1111 | 1110 | 0011 | 1011 | 0101 | 0010 | 1100 |
| S 4 | S 4 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 4 | S 4 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 0111 | 1101 | 1110 | 0011 | 0000 | 0110 | 1001 | 1010 | 0001 | 0010 | 1000 | 0101 | 1011 | 1100 | 0100 | 1111 |
| ĂuĂere Bits | 01 | 1101 | 1000 | 1011 | 0101 | 0110 | 1111 | 0000 | 0011 | 0100 | 0111 | 0010 | 1100 | 0001 | 1010 | 1110 | 1001 |
| ĂuĂere Bits | 10 | 1010 | 0110 | 1001 | 0000 | 1100 | 1011 | 0111 | 1101 | 1111 | 0001 | 0011 | 1110 | 0101 | 0010 | 1000 | 0100 |
| ĂuĂere Bits | 11 | 0011 | 1111 | 0000 | 0110 | 1010 | 0001 | 1101 | 1000 | 1001 | 0100 | 0101 | 1011 | 1100 | 0111 | 0010 | 1110 |
| S 5 | S 5 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 5 | S 5 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 0010 | 1100 | 0100 | 0001 | 0111 | 1010 | 1011 | 0110 | 1000 | 0101 | 0011 | 1111 | 1101 | 0000 | 1110 | 1001 |
| ĂuĂere Bits | 01 | 1110 | 1011 | 0010 | 1100 | 0100 | 0111 | 1101 | 0001 | 0101 | 0000 | 1111 | 1010 | 0011 | 1001 | 1000 | 0110 |
| ĂuĂere Bits | 10 | 0100 | 0010 | 0001 | 1011 | 1010 | 1101 | 0111 | 1000 | 1111 | 1001 | 1100 | 0101 | 0110 | 0011 | 0000 | 1110 |
| ĂuĂere Bits | 11 | 1011 | 1000 | 1100 | 0111 | 0001 | 1110 | 0010 | 1101 | 0110 | 1111 | 0000 | 1001 | 1010 | 0100 | 0101 | 0011 |
| S 6 | S 6 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 6 | S 6 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 1100 | 0001 | 1010 | 1111 | 1001 | 0010 | 0110 | 1000 | 0000 | 1101 | 0011 | 0100 | 1110 | 0111 | 0101 | 1011 |
| ĂuĂere Bits | 01 | 1010 | 1111 | 0100 | 0010 | 0111 | 1100 | 1001 | 0101 | 0110 | 0001 | 1101 | 1110 | 0000 | 1011 | 0011 | 1000 |
| ĂuĂere Bits | 10 | 1001 | 1110 | 1111 | 0101 | 0010 | 1000 | 1100 | 0011 | 0111 | 0000 | 0100 | 1010 | 0001 | 1101 | 1011 | 0110 |
| ĂuĂere Bits | 11 | 0100 | 0011 | 0010 | 1100 | 1001 | 0101 | 1111 | 1010 | 1011 | 1110 | 0001 | 0111 | 0110 | 0000 | 1000 | 1101 |
| S 7 | S 7 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 7 | S 7 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 0100 | 1011 | 0010 | 1110 | 1111 | 0000 | 1000 | 1101 | 0011 | 1100 | 1001 | 0111 | 0101 | 1010 | 0110 | 0001 |
| ĂuĂere Bits | 01 | 1101 | 0000 | 1011 | 0111 | 0100 | 1001 | 0001 | 1010 | 1110 | 0011 | 0101 | 1100 | 0010 | 1111 | 1000 | 0110 |
| ĂuĂere Bits | 10 | 0001 | 0100 | 1011 | 1101 | 1100 | 0011 | 0111 | 1110 | 1010 | 1111 | 0110 | 1000 | 0000 | 0101 | 1001 | 0010 |
| ĂuĂere Bits | 11 | 0110 | 1011 | 1101 | 1000 | 0001 | 0100 | 1010 | 0111 | 1001 | 0101 | 0000 | 1111 | 1110 | 0010 | 0011 | 1100 |
| S 8 | S 8 | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes | Mittlere 4 Bits des Eingabewertes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S 8 | S 8 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| ĂuĂere Bits | 00 | 1101 | 0010 | 1000 | 0100 | 0110 | 1111 | 1011 | 0001 | 1010 | 1001 | 0011 | 1110 | 0101 | 0000 | 1100 | 0111 |
| ĂuĂere Bits | 01 | 0001 | 1111 | 1101 | 1000 | 1010 | 0011 | 0111 | 0100 | 1100 | 0101 | 0110 | 1011 | 0000 | 1110 | 1001 | 0010 |
| ĂuĂere Bits | 10 | 0111 | 1011 | 0100 | 0001 | 1001 | 1100 | 1110 | 0010 | 0000 | 0110 | 1010 | 1101 | 1111 | 0011 | 0101 | 1000 |
| ĂuĂere Bits | 11 | 0010 | 0001 | 1110 | 0111 | 0100 | 1010 | 1000 | 1101 | 1111 | 1100 | 1001 | 0000 | 0011 | 0101 | 0110 | 1011 |
SchwÀchen
Weil die SchlĂŒssellĂ€nge nur 56 Bit betrĂ€gt, konnte DES bereits durch Brute-Force-Angriffe gebrochen werden, indem systematisch alle möglichen SchlĂŒssel (256 = ca. 72 Billiarden) getestet wurden. Es gibt die Vermutung, dass diese kleine SchlĂŒssellĂ€nge absichtlich gewĂ€hlt wurde, weil die NSA bereits in den 1970er Jahren genug RechnerkapazitĂ€t besaĂ, um diese VerschlĂŒsselung zu brechen.
Deep Crack
â
Hauptartikel
:
EFF DES Cracker
Die EFF baute 1998 eine etwa 250.000 Dollar teure Maschine mit dem Namen âDeep Crackâ. Dieser Superrechner enthielt 1536 spezielle Krypto-Chips und konnte pro Sekunde etwa 88 Milliarden SchlĂŒssel testen. Im Juli 1998 gelang es mit dieser Maschine, einen DES-Code in 56 Stunden zu knacken und damit die âDES Challenge II-2â zu gewinnen, die von der Firma RSA Security ausgeschrieben worden war. 1999 gewann die gleiche Maschine die âDES Challenge IIIâ; dazu arbeitete sie mit dem weltweiten Netzwerk von distributed.net, bestehend aus etwa 100.000 Rechnern, zusammen. Der DES-SchlĂŒssel wurde in 22 Stunden und 15 Minuten gefunden, mehr als 245 Milliarden SchlĂŒssel wurden pro Sekunde getestet.
COPACOBANA
Die einzige andere öffentlich bekannte Maschine zum Brechen von DES ist COPACOBANA. Sie wurde 2006 von zwei Arbeitsgruppen an den UniversitĂ€ten Bochum und Kiel gebaut. Im Gegensatz zu Deep Crack besteht eine COPACOBANA aus rekonfigurierbaren Hardware-Bausteinen, sogenannten FPGAs. 120 FPGAs vom Typ Xilinx Spartan-3-1000 sind in einer Maschine auf 20 DIMM-Modulen zusammengefasst, wobei jedes DIMM-Modul sechs FPGAs enthĂ€lt. COPACOBANA kann 65 Milliarden DES-SchlĂŒssel pro Sekunde testen, woraus sich eine durchschnittliche Suchzeit von 6,4 Tagen fĂŒr eine DES-Attacke ergibt. Durch den Einsatz rekonfigurierbarer Hardware kann COPACOBANA auch zum Brechen anderer Chiffren wie A5 eingesetzt werden. Die Material- und Herstellungskosten von COPACOBANA belaufen sich auf etwa 10.000 Dollar. Der Kostenvorteil gegenĂŒber Deep Crack um einen Faktor 25 ist ein beeindruckendes Beispiel fĂŒr das Mooresche Gesetz. Hiernach wĂ€re ein Kostenvorteil von etwa 32 = 25 zu erwarten gewesen, da acht Jahre zwischen dem Bau der beiden Maschinen verstrichen sind (das Mooresche Gesetz sagt eine Halbierung der Kosten digitaler ICs alle 1,5 Jahre voraus, so dass bei acht Jahren etwa 5 Halbierungen stattgefunden haben sollten).
GeringfĂŒgige SchwĂ€chen
DES besitzt eine Komplement-Eigenschaft, das heiĂt, es gilt
DES K ⥠⥠( m ) = DES K ÂŻ ÂŻ ⥠⥠( m ÂŻ ÂŻ ) ÂŻ ÂŻ {\displaystyle \operatorname {DES} _{K}(m)={\overline {\operatorname {DES} _{\overline {K}}({\overline {m}})}}} fĂŒr alle SchlĂŒssel K {\displaystyle K} und alle Klartexte m {\displaystyle m} ,
wobei x ÂŻ ÂŻ {\displaystyle {\overline {x}}} das bitweise Komplement von x {\displaystyle x} bezeichnet. Dadurch lĂ€sst sich mit einem Chosen-Plaintext-Angriff bei einer vollstĂ€ndigen SchlĂŒsselsuche der Suchraum auf 255 SchlĂŒssel halbieren.
Es existieren vier schwache SchlĂŒssel K {\displaystyle K} mit der Eigenschaft, dass
DES K ⥠⥠( DES K ⥠⥠( m ) ) = m {\displaystyle \operatorname {DES} _{K}(\operatorname {DES} _{K}(m))=m} fĂŒr alle Klartexte m {\displaystyle m} .
Des Weiteren gibt es sechs semi-schwache SchlĂŒsselpaare ( K 1 , K 2 ) {\displaystyle (K_{1},K_{2})} mit der Eigenschaft, dass
DES K 1 ⥠⥠( DES K 2 ⥠⥠( m ) ) = m {\displaystyle \operatorname {DES} _{K_{1}}(\operatorname {DES} _{K_{2}}(m))=m} fĂŒr alle Klartexte m {\displaystyle m} .
In der Praxis ist dies jedoch kein Problem, da die Wahrscheinlichkeit fĂŒr einen (semi-)schwachen SchlĂŒssel bei zufĂ€lliger Auswahl eines SchlĂŒssels nur 16:256 betrĂ€gt. AuĂerdem lĂ€sst sich die Verwendung dieser SchlĂŒssel leicht vermeiden, indem sie bei der Erzeugung explizit ignoriert werden.
Anwendungen
Breite Anwendung findet der DES-Algorithmus bei Geldautomaten: Mit Hilfe des DES-Algorithmus und eines geheimen SchlĂŒssels wird bereits in der Tastatur eine sogenannte PAC berechnet. Diese wird zusammen mit den Daten des Magnetstreifens (Kontonummer, Bankleitzahl, GĂŒltigkeitszeitraum, âŠ) zum Host des kontofĂŒhrenden Instituts geschickt, dort wird die PIN entschlĂŒsselt und verifiziert.
In der Anfangszeit der Geldautomaten wurde aus den Daten des Magnetstreifens (Kontonummer, Bankleitzahl, GĂŒltigkeitszeitraum, âŠ) und dem geheimen SchlĂŒssel die PIN berechnet und das Ergebnis mit der Eingabe des Benutzers verglichen. Diese sogenannte Offline-PIN-PrĂŒfung wird seit mehreren Jahren nicht mehr verwendet.
Bis zum heutigen Tage wird DES fĂŒr die SprachverschlĂŒsselung von sicherheitskritischen Sprechfunkaussendungen verwendet. In Deutschland gehören zu den Anwendern diverse polizeiliche Sondereinheiten sowie die Verfassungsschutzbehörden des Bundes und der LĂ€nder.cite-ref-16[16] Verbreitet sind zu diesem Zweck SprechfunkgerĂ€te von Motorola aus den Modellreihen MX3000 und MTS2000.cite-ref-17[17] Die Sprache wird mittels Delta-Modulation digitalisiert und durch ein zertifiziertes Steckmodul im Inneren des SprechfunkgerĂ€tes zur VerschlĂŒsselung geschleust. Das Modul ist gegen Manipulationen geschĂŒtzt, der SchlĂŒssel ist nicht auslesbar und wird bei Manipulationsversuchen gelöscht. Auch bei Verwendung von Relaisstellen zur Reichweitenerhöhung ist das Konzept dergestalt, dass im Inneren der Relaisstelle das Signal nie unverschlĂŒsselt vorliegt. Die SchlĂŒsselverwaltung erfolgt entweder dezentral im direkten Zugriff auf das GerĂ€t mit einem sog. key variable loader (KVL), oder ĂŒber Funk zentral von einem key management centre per OTAR, âOver The Air Rekeyingâ. FĂŒr diese Anwendung ist auch DES nach heutigem Stand der Technik mehr als ausreichend sicher, sofern fĂŒr jedes Einsatzgeschehen (bzw. regelmĂ€Ăig wĂ€hrend lĂ€ngerer EinsĂ€tze) die SchlĂŒssel gewechselt werden, da das gesprochene Wort in solchen AnwendungsfĂ€llen nur aktuell fĂŒr die Gegenseite von Bedeutung ist. Eine mögliche EntschlĂŒsselung nach Stunden oder Tagen ist fĂŒr den Einsatz in der Regel irrelevant, da dann bereits âalles gelaufen istâ. Sowohl der technisch relativ hohe Aufwand als auch das benötigte Fachwissen senkt zusĂ€tzlich die Wahrscheinlichkeit, dass tatsĂ€chlich versucht wird, die Funkkommunikation nachtrĂ€glich zu entschlĂŒsseln.
Die US-ExportbeschrĂ€nkung fĂŒr den DES mit voller 56-Bit-SchlĂŒssellĂ€nge wurde aufgehoben.cite-ref-18[18]
Ersatz-Algorithmen
Aufgrund seiner geringen SchlĂŒssellĂ€nge war DES bald nicht mehr ausreichend sicher und es musste ein Ersatz gefunden werden.
Triple-DES
Der erste Ersatz fĂŒr DES war Triple-DES (auch 3DES oder DESede genannt). Die Idee der mehrfachen AusfĂŒhrung von DES mit zwei verschiedenen SchlĂŒsseln ist ein Verfahren, das vom DES-Mitentwickler Walter Tuchman beschrieben und analysiert wurde (siehe FIPS 46-3). Ralph Merkle und Martin Hellman schlugen nach einer weiteren Analyse 1981 die DreifachverschlĂŒsselung mit drei unabhĂ€ngigen, voneinander verschiedenen SchlĂŒsseln vor.cite-ref-19[19]
Bei der am hĂ€ufigsten verwendeten Methode wird jeder Datenblock mit einem DES-SchlĂŒssel K 1 {\displaystyle K_{1}} chiffriert, dann mit K 2 {\displaystyle K_{2}} dechiffriert und mit K 3 {\displaystyle K_{3}} chiffriert:
3DES ( K 1 , K 2 , K 3 ) := DES K 3 â â DES K 2 â â 1 â â DES K 1 {\displaystyle \operatorname {3DES} _{(K_{1},K_{2},K_{3})}:=\operatorname {DES} _{K_{3}}\circ \operatorname {DES} _{K_{2}}^{-1}\circ \operatorname {DES} _{K_{1}}}
Dieses Verfahren wird auch als EDE (Encrypt-Decrypt-Encrypt) bezeichnet. Eine einfache DES-VerschlĂŒsselung ist somit ein Spezialfall von 3DES:
3DES ( K , K , K ) = DES K {\displaystyle \operatorname {3DES} _{(K,K,K)}=\operatorname {DES} _{K}}
Ein fĂŒr die VerschlĂŒsselungsstĂ€rke von 3DES wichtiges mathematisches Problem war die Frage, ob die HintereinanderausfĂŒhrung von DES-Operationen die Sicherheit erhöht; dies wĂ€re nicht der Fall, wenn DES eine Gruppe ist. Campell und Wiener fanden heraus, dass die Menge der DES-VerschlĂŒsselungen DES K {\displaystyle \operatorname {DES} _{K}} unter HintereinanderausfĂŒhrung nicht abgeschlossen ist. Das bedeutet, dass es SchlĂŒssel K 1 {\displaystyle K_{1}} und K 2 {\displaystyle K_{2}} gibt, sodass DES K 2 â â DES K 1 â â DES K {\displaystyle \operatorname {DES} _{K_{2}}\circ \operatorname {DES} _{K_{1}}\neq \operatorname {DES} _{K}} fĂŒr alle SchlĂŒssel K {\displaystyle K} . Anders ausgedrĂŒckt ist die Anzahl der Permutationen von der Form DES K 2 â â DES K 1 {\displaystyle \operatorname {DES} _{K_{2}}\circ \operatorname {DES} _{K_{1}}} bedeutend gröĂer als die Zahl der DES K {\displaystyle \operatorname {DES} _{K}} -Permutationen. Damit lĂ€sst sich die effektive SchlĂŒssellĂ€nge tatsĂ€chlich steigern. Dies konnte allerdings erst 1992 gezeigt werden.cite-ref-20[20]
Die SchlĂŒssellĂ€nge von 3DES ist mit 168 Bits dreimal so groĂ wie bei DES (56 Bits), die effektive SchlĂŒssellĂ€nge liegt aber nur bei 112 Bits. Dies ist bedingt durch die Möglichkeit eines sogenannten Meet-in-the-middle-Angriff: Ist der Angreifer im Besitz eines Paares aus Klartext und Chiffre, so kann er die VerschlĂŒsselung von beiden Seiten angreifen. Der Klartext wird mit sĂ€mtlichen möglichen SchlĂŒsseln fĂŒr Stufe 1 verschlĂŒsselt (256 Möglichkeiten). Die so entstandenen Texte werden ebenfalls jeweils mit allen möglichen SchlĂŒsseln fĂŒr Stufe 2 entschlĂŒsselt (2112 Möglichkeiten). Deren Ergebnisse vergleicht man mit den Ergebnissen der EntschlĂŒsselung des Chiffretextes mit sĂ€mtlichen SchlĂŒsseln (256Möglichkeiten). So mĂŒssen insgesamt nur 2112+256â2112 Ver- bzw. EntschlĂŒsselungen durchgefĂŒhrt werden, anstatt 2168 bei Verwendung der Brute-Force-Methode.
Aufgrund dieses MissverhĂ€ltnisses zwischen SchlĂŒssellĂ€nge und effektivem Sicherheitsniveau wird oft K 1 = K 3 {\displaystyle K_{1}=K_{3}} gewĂ€hlt. Dies liefert fĂŒr eine SchlĂŒssellĂ€nge von 112 Bits ein theoretisches Sicherheitsniveau von 112 Bits, da kein Meet-in-the-middle-Angriff möglich ist. Es gibt jedoch weitere Angriffe,cite-ref-21[21] so dass 3DES mit zwei SchlĂŒsseln vom National Institute of Standards and Technology mit einem Sicherheitsniveau von 80 Bits bewertet wird.cite-ref-22[22]
AES
Durch einen Wettbewerb des NIST wurde im Oktober 2000 der Advanced Encryption Standard (AES) gewĂ€hlt, um DES offiziell zu ersetzen. Das jetzt als AES bezeichnete VerschlĂŒsselungsverfahren, das den Wettbewerb gewann, war von seinen belgischen Entwicklern Vincent Rijmen und Joan Daemen unter dem Namen Rijndael zu diesem Wettbewerb eingereicht worden.
3DESE â Triple DES im Bereich PPP
Literatur
âą Bruce Schneier: Applied Cryptography. Protocols, Algorithms, and Source Code in C. 2. Auflage. John Wiley and Sons, New York NY 1996, ISBN 0-471-11709-9.
âą Bruce Schneier: Angewandte Kryptographie. Protokolle, Algorithmen und Sourcecode in C. Addison-Wesley, Bonn u. a. 1996, ISBN 3-89319-854-7, S. 267 (Informationssicherheit).
âą Klaus Schmeh: Codeknacker gegen Codemacher. Die faszinierende Geschichte der VerschlĂŒsselung. 2. Auflage. W3l-Verlag, Herdecke u. a. 2008, ISBN 978-3-937137-89-6, S. 263â274.
âą Dossier Kryptographie. In: Spektrum der Wissenschaft, 24, 4, 2001, S. 42â47.
Weblinks
âą DES- und TripleDES-Spezifikation. (PDF; 0,4 MB) NIST (englisch).
âą DES als JavaScript (inkl. Zwischenwerte des Algorithmus). eku.edu (englisch).
âą Einfache Beschreibung von DES mit Grafik. chello.at
âą Detaillierte Darstellung von DES. matheprisma.de
âą COPACOBANA â Eine kostenoptimierte Spezialhardware zum Codeknacken der UniversitĂ€ten Bochum und Kiel. copacobana.org (englisch).
âą Standard Cryptographic Algorithm Naming zu DES. zetnet.co.uk
Einzelnachweise
cite-note-schneier-22. â Bruce Schneier: Applied Cryptography. Protocols, Algorithms and Source Code in C. 2. Auflage. John Wiley & Sons, New York 1996, ISBN 0-471-11709-9, S. 280.
cite-note-ussenat-33. â Unclassified Summary: Involvement of NSA in the Development of the Data Encryption Standard. (PDF) United States Senate Select Committee on Intelligence, November 1978, S. 55, archiviert vom Original (nicht mehr online verfĂŒgbar) am 18. Dezember 2015; abgerufen am 6. August 2010. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.lkn.fe.uni-lj.si
cite-note-coppersmith-66. â Don Coppersmith: The Data Encryption Standard (DES) and its strength against attacks. In: IBM Journal of Research and Development. Band 38, Nr. 3, Mai 1994, S. 243 (rub.de [PDF]).
cite-note-coppersmith2-77. â Don Coppersmith: The Data Encryption Standard (DES) and its strength against attacks. In: IBM Journal of Research and Development. Band 38, Nr. 3, Mai 1994, S. 247 (rub.de [PDF]).
cite-note-99. â cryptography.com
cite-note-1010. â Bruce Schneier: Applied Cryptography, Protocols, Algorithms, and Source Code in C. 2. Auflage. John Wiley and Sons, New York 1996, S. 267 Angewandte Kryptographie, Protokolle, Algorithmen und Sourcecode in C. Pearson Studium, 2006.
cite-note-dh-exh-111. Whitfield Diffie, Martin E. Hellman: Exhaustive Cryptanalysis of the NBS Data Encryption Standard. In: Computer. 10. Jahrgang, Nr. 6, Juni 1977, S. 74â84, doi:10.1109/C-M.1977.217750 (englisch, origin-computer.org (Memento des Originals vom 26. Februar 2014 im Internet Archive)).
cite-note-hoac-1212. â Alfred H. Menezes, Paul C. van Oorschot, Scott A. Vanstone, âHandbook of Applied Cryptographyâ, CRC Press, 1996, ISBN 0-8493-8523-7.
cite-note-schneier2-1313. â Bruce Schneier: Applied Cryptography. Protocols, Algorithms and Source Code in C. 2. Auflage. John Wiley & Sons, New York 1996, ISBN 0-471-11709-9, S. 274.
cite-note-1414. â Klaus Irmscher: DES â Data Encryption Standard. (PDF; 42 kB) Uni Leipzig, 2009, archiviert vom Original (nicht mehr online verfĂŒgbar) am 4. November 2009; abgerufen am 18. MĂ€rz 2010.
cite-note-1515. â Break DES in less than a single day (Memento vom 24. April 2010 im Internet Archive) sciengines.com, Presseseite zu den Workshop Ergebnissen 2009.
cite-note-1616. â Geschichtliche Entwicklung des BOS-Funks. Abgerufen am 13. April 2025.
cite-note-1717. â Geschichtliche Entwicklung des BOS-Funks. Abgerufen am 13. April 2025.
cite-note-1919. â R. C. Merkle, M. E. Hellman: On the Security of Multiple Encryption. In: Communications of the ACM, Vol. 24, Nr. 7, Juli 1981.
cite-note-2020. â K.W. Campbell, M.J. Wiener: DES is not a group. In: Advances in Cryptology â CRYPTO â92 (LNCS 740). Springer-Verlag, 1993, S. 512â520.
cite-note-2121. â Eli Biham: How to Forge DES-Encrypted Messages in 228 Steps (Memento vom 10. Dezember 2005 im Internet Archive) (PostScript) cs.technion.ac.il, 1996.
cite-note-2222. â Elaine Barker, William Barker, William Burr, William Polk, Miles Smid: NIST Special Publication 800-57. Recommendation for Key Management â Part 1: General (Revision 3). Hrsg.: National Institute of Standards and Technology (= NIST Special Publications). 2012, Abschnitt 5.6.1 Comparable Algorithm Strengths, S. 64 (nist.gov [PDF; 535 kB; abgerufen am 21. August 2021]).